// pages/search/search.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    value: "",
    searchList: [],
    historyList: [],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      historyList: JSON.parse(wx.getStorageSync("search") || "[]"),
    });
  },
  onSearch(e) {
    console.log(e);
    this.getSearchList(e.detail);
  },
  onChange(e) {
    // this.getSearchList(e.detail);
    clearTimeout(timer);
    // 重新启动一个延时器，并把 timer 赋值给 this.timer
    const timer = setTimeout(() => {
      console.log(e);
      // 如果 500 毫秒内，没有触发新的输入事件，则为搜索关键词赋值
      this.setData({
        value: e.detail,
      });
    }, 500);
  },
  //   根据搜索关键词，搜索商品列表
  async getSearchList(value) {
    if (value === "") {
      this.setData({
        searchList: [],
      });
      return;
    }
    const { message, meta } = await wx.http.get("/goods/qsearch", {
      query: value,
    });

    if (meta.status !== 200 && message !== [])
      return wx.utils.toast("商品搜索失败，请重试！");
    this.setData({
      searchList: message,
      historyList: this.data.historyList,
    });
    this.saveSearchHistory(value);
  },
  // 保存搜索关键词为历史记录
  saveSearchHistory(value) {
    if (!!value) {
      this.data.historyList.push(value);
    }
    const set = new Set(this.data.historyList);
    set.delete("null");
    this.setData({
      historyList: Array.from(set),
    });
    wx.setStorageSync("search", JSON.stringify(this.data.historyList));
  },

  //清空历史记录
  clearHistory() {
    this.setData({
      historyList: [],
    });
    wx.clearStorageSync("search");
  },
  // 点击历史记录中的某个跳转列表
  gotoGoodsList({ mark }) {
    const { name } = mark;

    this.getSearchList(name);
  },
});
